package org.chouy.framework.datasource;

/**
 * @program: Yang
 * @description: 数据源切换处理
 * @author: Zhouy
 * @create: 2018-12-21 16:36
 **/
public class DynamicDataSourceContextHolder {


    /**
    * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本
    * 所以每一个线程都可以独立的改变自己的副本,而不会影响其他线程所对应的副本
    * */
    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();

    /**
    * 设置数据源的变量
    * */
    public static void setDataSourceType(String dsType){
        System.out.println("切换到{"+dsType+"}数据源");
        CONTEXT_HOLDER.set(dsType);
    }

    /**
     * 获取数据源变量
     **/
    public static String getDataSourceType(){
        return CONTEXT_HOLDER.get();
    }


    /**
    * 清空数据源变量
    * */
    public static void clearDataSourceType(){
        CONTEXT_HOLDER.remove();
    }

}
